package com.cqc.other.juc.volatil.demo2;


import java.util.concurrent.TimeUnit;


public class VolatileTest {

    public static void main(String[] args) throws InterruptedException {
        DataEntity dataEntity = new DataEntity();
        AThread aThread = new AThread(dataEntity);
        aThread.start();
        BThread bThread = new BThread(dataEntity);
        bThread.start();

        TimeUnit.SECONDS.sleep(2);
        System.out.println(dataEntity.getCount());
        /**
         *
         * volatile保证各线程拿到的是最新值，但无法保证多线程对同一变量的操作是有序的。
         * 第1次：  1322963
         * 第2次：  1147819
         * 第3次：  1307830
         * 而不是 1000000*2=2000000
         *   volatile 不适用的场景  方法1： 解决方法是在方法上加 synchronized
         * public synchronized void add()
         */
    }
}
